今天目標是成功篩選出特定條件的信件內容,方便我們之後 push 到資料庫供 Line Messaging Api 使用
網路上其實有非常多優質的 GAS 教學文章,筆者過去也是看著大神們的文章一步步接觸新東西。但是在沒有教學文章的情況下該怎麼辦呢?對工程師來說,最簡單暴力的就是看程式碼或是官方文件了!
GAS 到目前為止都還是免費限額使用,詳細的配額限制可以參考以下文件,基本上以個人用途來說不太容易超過配額,可以放心使用。
Apps Script services have daily quotas and limitations on some features. If you exceed a quota or limitation, your script throws an exception and execution stops.
Apps Script | Google Developers
Google 的各項服務其實都提供了很詳細的說明文件,而 GAS 也不例外,在說明文件的首頁找到我們需要的 Gmail 點進去吧!
Gmail Service
可以看到前篇文章使用到的 Class GmailApp
底下的 Method getInboxThreads(start, max)
也在其中
目標是只要找出 Netflix 發送給我們的最新郵件,從文件中找出最適合的 Method 為 search(query, start, max)
String
),而且平常在 Gmail 搜尋郵件時下的條件都能使用(更多搜尋運算子)Integer
),符合 query
條件的 threads 中,以 index == start
的 thread 開始取得Integer
),從 start
開始取得最多 max
則的 threads,不足 max
則時,其餘返回 empty array所以我們可以寫出以下的程式碼去取得最新一則 Nextflix 發給我們的 GmailThread 的主旨和訊息內容
function readMail() {
var firstThread = GmailApp.search('from:netflix', 0, 1)[0];
Logger.log(firstThread.getFirstMessageSubject());
var messages = firstThread.getMessages();
for (var i = 0; i < messages.length; i++) {
Logger.log(messages[i].getPlainBody());
}
}
最後按下執行,確認結果
今日目標完成!即將迎接 Friday Night 的到來,期待~
明天繼續研究怎麼將取得的內容存放到適合的資料庫中,GAS能存放的媒介選擇可不少呢~